#include "head.h"
// 发送小文件
//int transFile(int netfd){
//    //send(netfd,"file1",5,0); // 发送文件名
//    //int fd = open("file1",O_RDWR);
//    //ERROR_CHECK(fd,-1,"open");//打开文件
//    //char buf[4096] = {0};
//    //ssize_t sret = read(fd,buf,sizeof(buf));
//    //send(netfd,buf,sret,0);//读了多少发多少
//    train_t train;
//    train.length = 5;
//    memcpy(train.data,"file1",5);//组装第一列小火车
//    //发送小火车
//    send(netfd,&train,sizeof(train.length)+train.length,0);
//    int fd = open("file1",O_RDWR);
//    // 将文件的数据读取到小火车的车厢部分
//    ssize_t sret = read(fd,train.data,sizeof(train.data));
//    train.length = sret;
//    //发送小火车
//    send(netfd,&train,sizeof(train.length)+train.length,0);
//    return 0;
//}
// 发送大文件
//int transFile(int netfd){
//    train_t train;
//    train.length = 5;
//    memcpy(train.data,"file1",5);//组装第一列小火车
//    //发送小火车
//    send(netfd,&train,sizeof(train.length)+train.length,MSG_NOSIGNAL);
//    int fd = open("file1",O_RDWR);
//    while(1){
//        // 将文件的数据读取到小火车的车厢部分
//        ssize_t sret = read(fd,train.data,sizeof(train.data));
//        train.length = sret;
//        //发送小火车
//        send(netfd,&train,sizeof(train.length)+train.length,MSG_NOSIGNAL);
//        if(sret == 0){
//            break;
//        }
//    }
//    close(fd);
//    return 0;
//}
//显示进度条
int transFile(int netfd){
    train_t train;
    train.length = 5;
    memcpy(train.data,"file1",5);//组装第一列小火车
    //发送小火车
    send(netfd,&train,sizeof(train.length)+train.length,MSG_NOSIGNAL);
    int fd = open("file1",O_RDWR);
    struct stat statbuf;
    // 获取文件大小
    fstat(fd,&statbuf);
    // 发送小火车 火车头 size的长度 火车车厢 size的内容
    bzero(&train,sizeof(train));
    train.length = sizeof(statbuf.st_size);
    memcpy(train.data,&statbuf.st_size,train.length);
    send(netfd,&train,sizeof(train.length)+train.length,MSG_NOSIGNAL);
    while(1){
        // 将文件的数据读取到小火车的车厢部分
        ssize_t sret = read(fd,train.data,sizeof(train.data));
        train.length = sret;
        //发送小火车
        send(netfd,&train,sizeof(train.length)+train.length,MSG_NOSIGNAL);
        if(sret == 0){
            break;
        }
    }
    close(fd);
    return 0;
}
